package Biblio.metier;

import java.util.ArrayList;
import java.util.Date;

import Biblio.Exception.BiblioException;

public abstract class Utilisateur extends Personne {
        private int idUtilisateur;
        private String pwd;
        private String pseudonyme;
        private ArrayList<EmpruntEnCours> empruntsEnCours;
        
        public Utilisateur(String nom, String prenom, Date dateNaissance,
                        String sexe, int idUtilisateur, String pwd, String pseudonyme) {
                super(nom, prenom, dateNaissance, sexe);
                this.idUtilisateur = idUtilisateur;
                this.pwd = pwd;
                this.pseudonyme = pseudonyme;
                
                empruntsEnCours = new ArrayList<EmpruntEnCours>();
        }

        public Utilisateur(String nom, String prenom, int idUtilisateur) {
                super(nom, prenom);
                this.idUtilisateur = idUtilisateur;
                
                empruntsEnCours = new ArrayList<EmpruntEnCours>();
        }
        
        public int getIdUtilisateur() {
                return idUtilisateur;
        }

        public void setIdUtilisateur(int idUtilisateur) {
                this.idUtilisateur = idUtilisateur;
        }

        public String getPwd() {
                return pwd;
        }

        public void setPwd(String pwd) {
                this.pwd = pwd;
        }

        public String getPseudonyme() {
                return pseudonyme;
        }

        public void setPseudonyme(String pseudonyme) {
                this.pseudonyme = pseudonyme;
        }

        public void addEmpruntEnCours(EmpruntEnCours ep) throws BiblioException {
                empruntsEnCours.add(ep);
        }
        
        public void removeEmpruntEnCours(EmpruntEnCours ep){
                empruntsEnCours.remove(ep);
        }
        
        public ArrayList<EmpruntEnCours> getEmpruntsEnCours() {
                return empruntsEnCours;
        }

        public int getNbEmpruntsEnCours() {
                return empruntsEnCours.size();
        }
        
        abstract public int getNbRetards();

		@Override
		public String toString() {
			return "\n idUtilisateur = " + idUtilisateur + "\n pwd = "
					+ pwd + "\n pseudonyme = " + pseudonyme + "\n empruntsEnCours = "
					+ empruntsEnCours + "\n" + " "+super.toString();
		}

        
       

}
